package com.ice.exception;

import com.ice.pojo.Result;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice   // 它会拦截所有 @RequestMapping 方法抛出的异常
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)  //定义具体的异常处理方法，Exception.class 表示捕获所有类型的异常
    public Result handlerException(Exception e){
        e.printStackTrace();//把异常输入控制台
        // 有些异常没有封装信息，用三元运算符判定
        //StringUtils 是 Spring 提供的工具类，hasLength 判断字符串是否非空
        //如果异常有自定义消息（e.getMessage() 不为空），则返回该消息；否则返回默认提示 "操作失败"。
        return Result.error(StringUtils.hasLength(e.getMessage())?e.getMessage():"操作失败");
    }
}
